package pcsr.drivers;

import java.util.Collection;

import pcsr.hwVirtualization.Actuator;
import pcsr.hwVirtualization.IRobotController;
import pcsr.hwVirtualization.RobotInfo;
import pcsr.hwVirtualization.Sensor;

/**
 * Defines a base for implementing a synchronous PCSR driver.
 * @author Paulo Fagundes
 *
 */
public abstract class SynchronousDriver implements IRobotController {

	/**
	 * {@inheritDoc}
	 */
	@Override
	public abstract Actuator GetActuatorStatus(Actuator actuator);

	/**
	 * {@inheritDoc}
	 */
	@Override
	public abstract Sensor GetSensorStatus(Sensor sensor);

	/**
	 * {@inheritDoc}
	 */
	@Override
	public abstract Collection<Actuator> GetAllActuators();

	/**
	 * {@inheritDoc}
	 */
	@Override
	public abstract Collection<Sensor> GetAllSensors();

	/**
	 * {@inheritDoc}
	 */
	@Override
	public abstract RobotInfo GetRobotInfo();

	/**
	 * {@inheritDoc}
	 */
	@Override
	public abstract void SetActuatorStatus(Actuator actuator);

	/**
	 * {@inheritDoc}
	 */
	@Override
	public abstract void SetSensorStatus(Sensor sensor);

}
